In machine learning, a Convolutional Neural Network (CNN, or ConvNet) is a type of feed-forward artificial neural network in which the connectivity pattern between its neurons is inspired by the organization of the animal visual cortex. Individual cortical neurons respond to stimuli in a restricted region of space known as the receptive field. The receptive fields of different neurons partially overlap such that they tile the visual field. The response of an individual neuron to stimuli within its receptive field can be approximated mathematically by a convolution operation. Convolutional networks were inspired by biological processes and are variations of multilayer perceptions designed to use minimal amounts of pre-processing. They have wide applications in image and video recognition, recommender systems and natural language processing. The convolutional neural network can also be known as a Shift Invariant or Space Invariant Artificial Neural Network (SIANN), which is named based on its shared weights architecture and translation invariance characteristics.
A CNN can be made up of various computation layers, namely a convolution layer, a Rectifier Linear Unit (RELU) layer, a pooling layer, a fully connected (FC) layer and output layer(s). These CNN layers operate to make decisions using artificial intelligence processes that build upon image processing techniques. Chipset suppliers have successfully accelerated CNN throughput by focussing on the convolution layer. They have added more Single Instruction Multiple Data (SIMD) Multiply Accumulate (SIMD MAC) units and also enabled their digital signal processors (DSPs) to operate at significantly higher frequencies. Some suppliers also offer powerful scatter-gather direct memory access (DMA), which can be advantageous for two dimensional (2D) convolutions. However, solutions thus far can lead to increases in switching power consumption.